import type { PermissionProps, VisibleProps, DisbaledProps } from "@/components/hooks"
import type { IconProps } from "@/components/Icon"

export * from "@/components/Icon/src/types"

export type ButtonType = "default" | "tertiary" | "primary" | "success" | "info" | "warning" | "error"

/**
 * 按钮属性
 */
export interface ButtonProps extends PermissionProps, VisibleProps, DisbaledProps {
    // 显示文本
    title?: string
    // 按钮类型，默认为 default
    type?: ButtonType
    // 形状：circle圆形、round圆角、text文本、默认为方块
    shape?: "circle" | "round" | "text"
    // 大小
    size?: "tiny" | "small" | "medium" | "large"
    // 是否块级，默认为 false
    block?: boolean
    // 边框样式，false无边框、dashed虚线边框
    bordered?: boolean | "dashed"
    // 颜色
    color?: string
    // 文本颜色
    textColor?: string
    // 图标
    icon?: string | IconProps
    // 图标位置
    iconPlacement?: "left" | "right"
    // 按钮需要被渲染为什么标签，默认为 button
    tag?: string
    // HTML 按钮类型
    htmlType?: "button" | "submit" | "reset"
    // 加载状态
    loading?: boolean
    // 挂载数据，点击按钮时作为参数
    data?: any
    // 点击事件
    onClick?: (data?: any) => void
}
